package infrastructure;


import com.alibaba.druid.pool.DruidDataSource;

import java.sql.Connection;
import java.sql.SQLException;

/**
 * sqlite数据库连接池
 * 使用阿里druid数据库连接池
 *
 * @author wyl
 */
public class SqliteConnectionPool {
    private static final DruidDataSource dataSource = new DruidDataSource();
    private static final String URL = "jdbc:sqlite:./res/data/chatroom.db";
    private static final String DriverClassName = "org.sqlite.JDBC";

    static {
        dataSource.setUrl(URL);
        dataSource.setDriverClassName(DriverClassName);
        //下面都是可选的配置
        //初始连接数，默认0
        dataSource.setInitialSize(10);
        //最大连接数，默认8
        dataSource.setMaxActive(10);
        //最小闲置数
        dataSource.setMinIdle(4);
        //获取连接的最大等待时间，单位毫秒
        dataSource.setMaxWait(2000);
        //缓存PreparedStatement，默认false
        //dataSource.setPoolPreparedStatements(true);
        //缓存PreparedStatement的最大数量，默认-1（不缓存）。大于0时会自动开启缓存PreparedStatement，所以可以省略上一句代码
        dataSource.setMaxOpenPreparedStatements(20);
        //设置验证查询，目的是看数据库是否可用
        dataSource.setValidationQuery("select 1");
    }


    public static Connection getConn() throws SQLException {
        return dataSource.getConnection();
    }

}
